home *** CD-ROM | disk | FTP | other *** search
-
-
-
- MMMMKKKKSSSSTTTTRRRR((((1111)))) MMMMKKKKSSSSTTTTRRRR((((1111))))
-
-
-
- NNNNAAAAMMMMEEEE
- mkstr - create an error message file by massaging C source
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- mmmmkkkkssssttttrrrr [ ---- ] messagefile prefix file ...
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _M_k_s_t_r is used to create files of error messages. Its use can make
- programs with large numbers of error diagnostics much smaller, and reduce
- system overhead in running the program as the error messages do not have
- to be constantly swapped in and out.
-
- _M_k_s_t_r will process each of the specified _f_i_l_e_s, placing a massaged
- version of the input file in a file whose name consists of the specified
- _p_r_e_f_i_x and the original name.
-
- To process the error messages in the source to the message file _m_k_s_t_r
- keys on the string ````eeeerrrrrrrroooorrrr((((""""'''' in the input stream. Each time it occurs,
- the C string starting at the """" is placed in the message file followed by
- a new-line character and a null character; the null character terminates
- the message so it can be easily used when retrieved, the new-line
- character makes it possible to sensibly _c_a_t the error message file to see
- its contents. The massaged copy of the input file then contains an
- _l_s_e_e_k(2) pointer into the file which can be used to retrieve the message,
- i.e.:
-
- cccchhhhaaaarrrr efilname[] = "/usr/lib/pi_strings";
- iiiinnnntttt efil = -1;
-
- error(a1, a2, a3, a4)
- {
- cccchhhhaaaarrrr buf[256];
-
- iiiiffff (efil < 0) {
- efil = open(efilname, 0);
- iiiiffff (efil < 0) {
- oops:
- perror(efilname);
- exit(1);
- }
- }
- iiiiffff (lseek(efil, (long) a1, 0) || read(efil, buf, 256) <= 0)
- ggggoooottttoooo oops;
- printf(buf, a2, a3, a4);
- }
-
- The optional ---- causes the error messages to be placed at the end of the
- specified message file for recompiling part of a large _m_k_s_t_red program.
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- MMMMKKKKSSSSTTTTRRRR((((1111)))) MMMMKKKKSSSSTTTTRRRR((((1111))))
-
-
-
- EXAMPLE
- If the current directory has files "a.c" and "b.c", then
-
- mkstr exs x *.c
-
- would create a new file "exs" which holds all the error messages
- extracted from the source files "a.c" and "b.c", as well as two new
- source files "xa.c" and "xb.c" which no longer contains the extracted
- error messages.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- lseek(2).
-
- BBBBUUUUGGGGSSSS
- All the arguments except the name of the file to be processed are
- unnecessary.
-
- AAAAUUUUTTTTHHHHOOOORRRRSSSS
- Bill Joy and Charles Haley.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-